In augmented reality (AR) environments, a user may view an integration of artificial or virtual graphics with the user's natural surroundings. In some early implementations of AR, a user may see graphics displayed arbitrarily amongst or within the user's natural surroundings via, for example, augmented reality goggles. For example, a graphic of a random butterfly may fly along the view of the AR goggles while the user continues to view his natural surroundings, regardless of whether the butterfly has any relevance to anything the user is seeing naturally. In more sophisticated implementations of AR, a user may be able to apply AR features or graphics directly to objects or structures of the user's natural surroundings. For example, the user may want to direct the graphic of the butterfly to land on a wall or a table, which requires first that the AR environment recognize where in fact the wall or table actually resides in the user's field of view.
In other cases, robots or other automated machines may apply similar concepts and techniques in the AR field when attempting to orient the robots in natural surroundings. For example, a robot may require an understanding of where are the walls and tables in the robot's natural surroundings, so that the robot does not run into the walls or tables. In other cases, the robot may interact with the natural surroundings by, for example, identifying a cup on a table and picking up the cup. Performing such a task may first require the robot to successfully identify the cup, and in some cases, the table that the cup is on. However, achieving machine-based recognition of natural surroundings in real time has proven to be a difficult problem to solve, as existing techniques may not be fast enough or energy efficient enough for real-time purposes, for example. Thus, there is a need in the art for improved methods of machine-based recognition of natural surroundings in a real-time setting.